using System;
using System.Collections;
using System.Collections.Generic;

namespace Neturion.Dados
{
    public class Usuario
    {
        private int _usuarioId;
        private string _login;
        private string _senha;
        private string _foto;
        private Pessoa _pessoa;
        private DateTime? _inicioVigencia;
        private DateTime? _fimVigencia;
        private IList _listaSistemaPerfilUsuario;

        public Usuario()
        {
            _listaSistemaPerfilUsuario = new List<SistemaPerfilUsuario>();
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual int UsuarioId
        {
            get { return _usuarioId; }
            set { _usuarioId = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Login
        {
            get { return _login; }
            set { _login = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Senha
        {
            get { return _senha; }
            set { _senha = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Foto
        {
            get { return _foto; }
            set { _foto = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual Pessoa Pessoa
        {
            get { return _pessoa; }
            set { _pessoa = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual DateTime? InicioVigencia
        {
            get { return _inicioVigencia; }
            set { _inicioVigencia = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual DateTime? FimVigencia
        {
            get { return _fimVigencia; }
            set { _fimVigencia = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual IList ListaSistemaPerfilUsuario
        {
            get { return _listaSistemaPerfilUsuario; }
            set { _listaSistemaPerfilUsuario = value; }
        }

        public virtual void AdicionarSistemaPerfilUsuario(SistemaPerfilUsuario sistemaPerfilUsuario)
        {
            sistemaPerfilUsuario.Usuario = this;
            ListaSistemaPerfilUsuario.Add(sistemaPerfilUsuario);
        }

        public virtual void RemoverSistemaPerfilUsuario(SistemaPerfilUsuario sistemaPerfilUsuario)
        {
            ListaSistemaPerfilUsuario.Remove(sistemaPerfilUsuario);
        }
    }
}